package com.server.rule.component.integrated;

import org.jdom.Element;

import com.googlecode.objectify.Key;
import com.server.rule.component.RuleDecision;
import com.server.rule.data.Data;
import com.server.rule.data.ExceptionTypeData;
import com.shared.model.Produit;
import com.shared.model.Proposition;
import com.shared.rule.TypeDecision;

/**
 * Classe correspondant à un produit proposé à la cible
 * @author queyroi
 *
 */
public class RuleDecisionProduit extends RuleDecisionWithProposition{

	private long idSaveData;	
	
	public RuleDecisionProduit() {
		super();
		typeDecision = TypeDecision.PRODUIT;
	}
	
	public RuleDecisionProduit(String label) {
		super(label);
		typeDecision = TypeDecision.PRODUIT;
	}
	
	public RuleDecisionProduit(String label,long idSavedData) {
		super(label);
		typeDecision = TypeDecision.PRODUIT;
		this.idSaveData = idSavedData;		
	}

		
	public Proposition createProposition(){
		Proposition proposition = new Proposition();
		proposition.setMessage(label);
		proposition.setKeyProduit(new Key<Produit>(Produit.class, idSaveData));
		return proposition;
	}
	
	
	
	/**
	 * @return the idSaveData
	 */
	public long getIdSaveData() {
		return idSaveData;
	}


	/**
	 * @param idSaveData the idSaveData to set
	 */
	public void setIdSaveData(long idSaveData) {
		this.idSaveData = idSaveData;
	}


	


	@Override
	public void generateFromXML(Element xmlElement) {
		label = xmlElement.getAttributeValue("label");			
		Element child = xmlElement.getChild("Produit");
		idSaveData = Long.parseLong(child.getAttributeValue("idProduit"));		
	}


	@Override
	public Element getXMLElement() {
		Element xmlElement = new Element("Rule");
		xmlElement.setAttribute("type", typeDecision.toString());
		xmlElement.setAttribute("label", label);		
		Element subElement = new Element("Produit");
		subElement.setAttribute("idProduit",String.valueOf(idSaveData));
		xmlElement.addContent(subElement);
		return xmlElement;
	}
	
	
}
